﻿// -----------------------------------------------------------------------
// <copyright file="IGetUserByIdQuery.cs">
// Copyright (c) 2013 Andrey Veselov. All rights reserved.
// License:  Microsoft Public License (MS-PL)
// Contacts: http://andrey.moveax.com  andrey@moveax.com
// </copyright>
// -----------------------------------------------------------------------

namespace Moveax.DataAccess.Cqrs.Highway.EF.UnitTests.Model.Queries.Users
{
	using System.Diagnostics.Contracts;
	using Moveax.DataAccess.Cqrs.Highway.UnitTests.Model;

	[ContractClass(typeof(GetUserByIdQueryContract))]
	public interface IGetUserByIdQuery : IQuery
	{
		User Execute(int userId, bool includeLinks);
	}

	[ContractClassFor(typeof(IGetUserByIdQuery))]
	internal abstract class GetUserByIdQueryContract : IGetUserByIdQuery
	{
		public User Execute(int userId, bool includeLinks)
		{
			Contract.Requires(0 < userId);

			return default(User);
		}
	}
}